package com.it.entity.closure;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 *  理赔结案信息表（理赔全流程结束后的最终记录）
 * </p>
 *
 * @author lutao
 * @since 2025年09月24日
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("ai_claim_closure")
public class AiClaimClosure implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     *  结案唯一 ID/案件编号（编码规则：CLOSE + 日期 + 6 位序列号）
     */
    @TableField("closure_id")
    private String closureId;

    /**
     *  关联报案号（关联报案表）
     */
    @TableField("report_no")
    private String reportNo;

    /**
     *  关联核赔 ID（关联核赔表）
     */
    @TableField("verification_id")
    private String verificationId;

    /**
     *  关联保单编号 
     */
    @TableField("policy_id")
    private String policyId;

    /**
     *  关联投保人 ID
     */
    @TableField("insured_id")
    private String insuredId;

    /**
     *  灾祸类型（取自报案表）
     */
    @TableField("disaster_type")
    private String disasterType;

    /**
     *  损失概况（汇总报案、查勘、立案信息，如：2024 年 9 月暴雨导致 5 亩玉米倒伏，查勘评估损失 8000 元）
     */
    @TableField("loss_summary")
    private String lossSummary;

    /**
     *  结案类型（1 - 正常赔付结案，2 - 拒赔结案，3 - 部分赔付结案，4 - 预赔抵扣后结案）	(预赔金额为0-正常赔付结案，立案表中不属于保险责任-拒赔结案，预赔金额不为0-拒赔抵扣后结案，)
     */
    @TableField("closure_type")
    private Integer closureType;

    /**
     *  已预赔金额（取自预赔表，无预赔则为 0）
     */
    @TableField("pre_claim_amount")
    private BigDecimal preClaimAmount;

    /**
     *  最终赔付金额（取自核赔表）
     */
    @TableField("final_pay_amount")
    private BigDecimal finalPayAmount;

    /**
     *  实际支付金额（= 最终赔付金额 - 已预赔金额，最低为 0）
     */
    @TableField("actual_pay_amount")
    private BigDecimal actualPayAmount;

    /**
     *  结案员 ID（关联工作人员表）
     */
    @TableField("closer_id")
    private String closerId;

    /**
     *  结案时间 
     */
    @TableField("closure_time")
    private LocalDateTime closureTime;

    /**
     *  结案意见（如：案件赔付流程合规，已完成支付，同意结案；或：经核赔认定不属于保险责任，同意拒赔结案）
     */
    @TableField("closure_opinion")
    private String closureOpinion;

    /**
     *  农户通知状态（0 - 未通知，1 - 已通知）
     */
    @TableField("notice_status")
    private Integer noticeStatus;

    /**
     *  通知农户时间 
     */
    @TableField("notice_time")
    private LocalDateTime noticeTime;

    /**
     *  农户反馈（如：认可赔付结果，无异议）
     */
    @TableField("farmer_feedback")
    private String farmerFeedback;

    /**
     *  农户姓名
     */
    @TableField(exist = false)
    private String insuredName;

    /**
     *  农户手机号
     */
    @TableField(exist = false)
    private String phone;
}
